home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / WWRechÜber_NW2.inbrexx < prev    next >
Text File  |  1998-10-31  |  9KB  |  371 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern der Rechnungsübersicht Netto Währung1 mit Hilfe von WordWorth
  3. ** $VER: WWRechÜber_NW1.inbrexx V1.01 (01.11.98)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. WWVorlage    = "WWDokumente/ERechübersicht_Netto.ww";
  12. WWDokument    = "t:ERechübersicht_Netto.ww";
  13. WWPort        = "WORDWORTH."
  14.  
  15. LF                    = '0a'x;                            /* Zeilenvorschub                */
  16.  
  17. Gefunden = 0;
  18. DO i = 1 TO 20 WHILE(Gefunden = 0)
  19.     IF show(ports, (WWPort || i)) THEN
  20.         DO;
  21.             Gefunden = 1;
  22.             WWPort = WWPort || i;
  23.         END;
  24. END;
  25.  
  26. IF Gefunden = 0 THEN
  27.     DO;
  28.         ES_TITLE                = "Warnung";
  29.         ES_TEXTFORMAT        = "WordWorth ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  30.         ES_GADGETFORMAT    = "Abbrechen";
  31.         EASY_REQUEST;
  32.         EXIT;
  33.     END;
  34.  
  35. /* Original WW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  36. /* dieser Vorlage zu verhindern */
  37. GET_REXXPATH;
  38. WWVorlage        = MTR_RESULT || WWVorlage;
  39. ADDRESS COMMAND "copy" WWVorlage WWDokument;
  40.  
  41. /* Oberfläche sperren */
  42. LOCKGUI;
  43.  
  44. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  45. PRINTSTATE;
  46. Druckart = MTR_RESULT;
  47.  
  48. Ende_Kennzeichen = 'N';
  49.  
  50. /* Suchen der zu druckenden Daten */
  51. GET_PREFS;
  52. PRINTFIND;
  53.  
  54. /* Neues Dokument öffnen */
  55. ADDRESS VALUE WWPort;
  56. NEW;
  57. WWPort = RESULT;
  58.  
  59. IF (MTR_RESULT > 0 & Ende_Kennzeichen = 'N') THEN
  60.     DO;
  61.         CALL DatenAufbereiten;
  62.         SELECT;
  63.             WHEN Druckart = 0 THEN    /* Drucken    */
  64.                 DO;
  65.                     ADDRESS VALUE WWPort;
  66.                     PRINT;
  67.                     ADDRESS VALUE ARexxPort;
  68.                     MTSCREENTOFRONT;
  69.                 END;
  70.             WHEN Druckart = 1 THEN    /* Vorschau    */
  71.                 ADDRESS VALUE ARexxPort;
  72.             WHEN Druckart = 2 THEN    /* Sichern    */
  73.                 DO;
  74.                     ADDRESS VALUE WWPort;
  75.                     SAVEAS;
  76.                     ADDRESS VALUE ARexxPort;
  77.                     MTSCREENTOFRONT;
  78.                 END;
  79.             OTHERWISE
  80.                 DO;
  81.                     ES_TITLE                = "Warnung";
  82.                     ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  83.                     ES_GADGETFORMAT    = "Ok";
  84.                     EASY_REQUEST;
  85.                     Ende_Kennzeichen    = 'J';
  86.                 END;
  87.         END;
  88.     END;
  89.  
  90. /* WordWorth-Datei aus t: wieder entfernen */
  91. ADDRESS COMMAND "delete" WWDokument;
  92.  
  93. /* Oberfläche wieder entsperren */
  94. ADDRESS VALUE ARexxPort;
  95. FREEGUI;
  96.  
  97. EXIT;
  98.  
  99. DatenAufbereiten:
  100.  
  101.     w            = 2;
  102.     wm            = 1;
  103.  
  104.     Gesamtsumme.0    = 0;
  105.     Gesamtsumme.1    = 0;
  106.     MWStSumme.0.0    = 0;
  107.     MWStSumme.0.1    = 0;
  108.     MWStSumme.1.0    = 0;
  109.     MWStSumme.1.1    = 0;
  110.     MWStSumme.2.0    = 0;
  111.     MWStSumme.2.1    = 0;
  112.     MWStSumme.3.0    = 0;
  113.     MWStSumme.3.1    = 0;
  114.     MWStSumme.4.0    = 0;
  115.     MWStSumme.4.1    = 0;
  116.     MWStSumme.5.0    = 0;
  117.     MWStSumme.5.1    = 0;
  118.     MWStSumme.6.0    = 0;
  119.     MWStSumme.6.1    = 0;
  120.     MWStSumme.7.0    = 0;
  121.     MWStSumme.7.1    = 0;
  122.     MWStSumme.8.0    = 0;
  123.     MWStSumme.8.1    = 0;
  124.     MWStSumme.9.0    = 0;
  125.     MWStSumme.9.1    = 0;
  126.     MWStSatz.0        = 0;
  127.     MWStSatz.1        = 0;
  128.     MWStSatz.2        = 0;
  129.     MWStSatz.3        = 0;
  130.     MWStSatz.4        = 0;
  131.     MWStSatz.5        = 0;
  132.     MWStSatz.6        = 0;
  133.     MWStSatz.7        = 0;
  134.     MWStSatz.8        = 0;
  135.     MWStSatz.9        = 0;
  136.  
  137.     ADDRESS VALUE WWPort;
  138.     OPEN FILENAME WWDokument FORCE;
  139.     POSITION SOF;
  140.  
  141.     DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  142.         ADDRESS VALUE ARexxPort;
  143.  
  144.         IF IB.BILL_NUMBER    > "" THEN
  145.             ZW_Nummer            = LEFT(IB.BILL_NUMBER, 20);
  146.         ELSE
  147.             DO;
  148.                 IF PREFS.NUMBER_DIGITS > 0 THEN
  149.                     ZW_Nummer    = LEFT(RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS ), 20);
  150.                 ELSE
  151.                     ZW_Nummer    = LEFT(MTR_RESULT, 20);
  152.             END;
  153.  
  154.         FORMAT_DATE_LONG IB.DATE_PAYED;
  155.         ZW_Datum                    = LEFT(MTR_RESULT, 35);
  156.  
  157.         IF PREFS.NUMBER_DIGITS > 0 THEN
  158.             ZW_Lieferant        = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || IB.INVOICEE_NUMBER), PREFS.NUMBER_DIGITS );
  159.         ELSE
  160.             ZW_Lieferant        = IB.INVOICEE_NUMBER;
  161.  
  162.         IF PREFS.NUMBER_DIGITS > 0 THEN
  163.             ZW_Besteller        = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || IB.ORDERER_NUMBER), PREFS.NUMBER_DIGITS );
  164.         ELSE
  165.             ZW_Besteller        = IB.ORDERER_NUMBER;
  166.  
  167.  
  168.         ADDRESS VALUE WWPort;
  169.         TEXT (ZW_Nummer || "            " || ZW_Datum || "    " || ZW_Lieferant || "    " || ZW_Besteller);
  170.         NEWPARAGRAPH;
  171.  
  172.         DO i = 1 to IB.COUNT_ARTICLE;
  173.             ADDRESS VALUE ARexxPort;
  174.  
  175.             FORMAT_NUMBER IB.i.POS_QUANTITY PREFS.FRAC_DIGITS;
  176.             ZW_Anzahl        = MTR_RESULT;
  177.  
  178.             NAME_OF_QUANTITY_UNIT IB.i.ARTICLE.QUANTITY_UNIT;
  179.             ZW_Einheit        = MTR_RESULT;
  180.  
  181.             j = IB.i.POS_VALUE;
  182.             FORMAT_NUMBER IB.VALUE_PERCENT.j PREFS.FRAC_DIGITS_PERCENT;
  183.             ZW_MWSt            = RIGHT(MTR_RESULT, 10);
  184.  
  185.             IF w < 2 THEN
  186.                 FORMAT_MONEY1 IB.i.POS_SINGLE_PRICE.w;
  187.             ELSE
  188.                 FORMAT_MONEY2 IB.i.POS_SINGLE_PRICE.w;
  189.             ZW_EinzelPreis    = MTR_RESULT;
  190.         
  191.             ADDRESS VALUE WWPort;
  192.             TEXT ("    " || IB.i.POS_ARTICLE_NUMBER_FORMATED || "    " || ZW_Anzahl || "    " || ZW_Einheit || "    " || ZW_MWSt || "    " || ZW_EinzelPreis);
  193.  
  194.             DO i2 = 0 TO 2;
  195.                 IF IB.i.POS_ADD_RED_USED.i2 > 0 THEN
  196.                     DO;
  197.                         ADDRESS VALUE ARexxPort;
  198.  
  199.                         j2 = IB.i.POS_ADD_RED_USED.i2 - 1;
  200.                         IF IB.i.POS_ADD_RED_TYPE.i2 = 0 | IB.i.POS_ADD_RED_TYPE.i2 = 5 THEN
  201.                             DO;
  202.                                 FORMAT_NUMBER IB.i.POS_ADD_RED_VALUE.i2.w PREFS.FRAC_DIGITS_PERCENT;
  203.                             END;
  204.                         ELSE
  205.                             DO;
  206.                                 IF w < 2 THEN
  207.                                     FORMAT_MONEY1 IB.i.POS_ADD_RED_VALUE.i2.w;
  208.                                 ELSE
  209.                                     FORMAT_MONEY2 IB.i.POS_ADD_RED_VALUE.i2.w;
  210.                             END;
  211.                         ZW_EinzelPreis    = RIGHT(MTR_RESULT, 15);
  212.  
  213.                         IF w < 2 THEN
  214.                             FORMAT_MONEY1 IB.i.POS_ADD_RED_VALUE_POS.i2.w;
  215.                         ELSE
  216.                             FORMAT_MONEY2 IB.i.POS_ADD_RED_VALUE_POS.i2.w;
  217.                         ZW_PosPreis        = RIGHT(MTR_RESULT, 18);
  218.  
  219.                         ADDRESS VALUE WWPort;
  220.                         NEWPARAGRAPH;
  221.                         TEXT "              " || PREFS.ADD_RED_TEXT.j2 || "            " || ZW_EinzelPreis || "    " || ZW_PosPreis;
  222.                     END;
  223.             END;
  224.  
  225.  
  226.             ADDRESS VALUE ARexxPort;
  227.             IF w < 2 THEN
  228.                 FORMAT_MONEY1 IB.i.POS_SUM_M_ALL.w;
  229.             ELSE
  230.                 FORMAT_MONEY2 IB.i.POS_SUM_M_ALL.w;
  231.             ZW_PosPreis        = MTR_RESULT;
  232.  
  233.             ADDRESS VALUE WWPort;
  234.             TEXT "    " || ZW_PosPreis;
  235.             NEWPARAGRAPH;
  236.  
  237.         END;
  238.  
  239.         DO i = 0 to 2;
  240.             IF IB.ADD_RED_USED.i > 0 THEN
  241.                 DO;
  242.                     ADDRESS VALUE ARexxPort;
  243.                     j2 = IB.ADD_RED_USED.i - 1;
  244.                     IF IB.ADD_RED_TYPE.i = 0 | IB.ADD_RED_TYPE.i = 5 THEN
  245.                         DO;
  246.                             FORMAT_NUMBER IB.ADD_RED_VALUE.i.w PREFS.FRAC_DIGITS_PERCENT;
  247.                         END;
  248.                     ELSE
  249.                         DO;
  250.                             IF w < 2 THEN
  251.                                 FORMAT_MONEY1 IB.ADD_RED_VALUE.i.w;
  252.                             ELSE
  253.                                 FORMAT_MONEY2 IB.ADD_RED_VALUE.i.w;
  254.                         END;
  255.                     ZW_EinzelPreis    = RIGHT(MTR_RESULT, 16);
  256.  
  257.                     IF w < 2 THEN
  258.                         FORMAT_MONEY1 IB.ADD_RED_VALUE_POS.i.w;
  259.                     ELSE
  260.                         FORMAT_MONEY2 IB.ADD_RED_VALUE_POS.i.w;
  261.                     ZW_PosPreis        = RIGHT(MTR_RESULT, 16);
  262.  
  263.                     ADDRESS VALUE WWPort;
  264.                     TEXT "    " || PREFS.ADD_RED_TEXT.j2 || "                " || ZW_EinzelPreis || "    " || ZW_PosPreis;
  265.                     NEWPARAGRAPH;
  266.                 END;
  267.         END;
  268.  
  269.         IF IB.DISPATCH_COSTS.w > 0 THEN
  270.             DO;
  271.                 ADDRESS VALUE ARexxPort;
  272.                 IF w < 2 THEN
  273.                     FORMAT_MONEY1 IB.DISPATCH_COSTS.w;
  274.                 ELSE
  275.                     FORMAT_MONEY2 IB.DISPATCH_COSTS.w;
  276.                 ZW_Betrag    = MTR_RESULT;
  277.  
  278.                 ADDRESS VALUE WWPort;
  279.                 TEXT ("    Versandkosten:                    " ZW_Betrag);
  280.                 NEWPARAGRAPH;
  281.             END;
  282.  
  283.         ADDRESS VALUE ARexxPort;
  284.         IF w < 2 THEN
  285.             FORMAT_MONEY1 IB.TOTAL_M_ALL_CH.w;
  286.         ELSE
  287.             FORMAT_MONEY2 IB.TOTAL_M_ALL_CH.w;
  288.         ZW_Betrag    = MTR_RESULT;
  289.  
  290.         ADDRESS VALUE WWPort;
  291.         TEXT ("    Rechnungsendbetrag:                        " ZW_Betrag);
  292.         NEWPARAGRAPH;
  293.         NEWPARAGRAPH;
  294.  
  295.         IF w < 2 THEN
  296.             DO;
  297.                 Gesamtsumme.0    = Gesamtsumme.0 + IB.TOTAL_M_ALL_CH.0;
  298.                 Gesamtsumme.1    = Gesamtsumme.1 + IB.TOTAL_M_ALL_CH.1;
  299.                 DO i = 0 TO 9;
  300.                     MWStSatz.i    = IB.VALUE_PERCENT.i
  301.                     MWStSumme.i.0    = MWStSumme.i.0 + IB.SUM_PER_VALUE_M_ALL_CH.i.0;
  302.                     MWStSumme.i.1    = MWStSumme.i.1 + IB.SUM_PER_VALUE_M_ALL_CH.i.1;
  303.                 END;
  304.             END;
  305.         ELSE
  306.             DO;
  307.                 Gesamtsumme.0    = Gesamtsumme.0 + IB.TOTAL_M_ALL_CH.2;
  308.                 Gesamtsumme.1    = Gesamtsumme.1 + IB.TOTAL_M_ALL_CH.3;
  309.                 DO i = 0 TO 9;
  310.                     MWStSatz.i    = IB.VALUE_PERCENT.i
  311.                     MWStSumme.i.0    = MWStSumme.i.0 + IB.SUM_PER_VALUE_M_ALL_CH.i.2;
  312.                     MWStSumme.i.1    = MWStSumme.i.1 + IB.SUM_PER_VALUE_M_ALL_CH.i.3;
  313.                 END;
  314.             END;
  315.  
  316.         ADDRESS VALUE ARexxPort;
  317.         PRINTFIND;
  318.     END;
  319.  
  320.     ADDRESS VALUE ARexxPort;
  321.     IF w < 2 THEN
  322.         FORMAT_MONEY1 Gesamtsumme.0;
  323.     ELSE
  324.         FORMAT_MONEY2 Gesamtsumme.0;
  325.     ZW_Gesamtsumme_Netto    = MTR_RESULT;
  326.  
  327.     j = 0;
  328.     DO i = 0 TO 9;
  329.         IF MWStSumme.i.0 > 0 THEN
  330.             DO;
  331.                 FORMAT_NUMBER MWStSatz.i PREFS.FRAC_DIGITS_PERCENT;
  332.                 j = j + 1;
  333.                 ZW_MWSt_TXT.j    = "Mehrwertsteuer (" || MTR_RESULT || "%, Netto: ";
  334.  
  335.                 IF w < 2 THEN
  336.                     FORMAT_MONEY1 MWStSumme.i.0;
  337.                 ELSE
  338.                     FORMAT_MONEY2 MWStSumme.i.0;
  339.                 ZW_MWSt_TXT.j    = ZW_MWSt_TXT.j || MTR_RESULT || ", Brutto: ";
  340.  
  341.                 IF w < 2 THEN
  342.                     FORMAT_MONEY1 MWStSumme.i.1;
  343.